$(function () {
    $("#showInsertClasszDialog").click(showInsertClasszDialog);
    $("#insertClassz").click(insertClassz);
    $("#updateClassz").click(updateClassz);
    $("#queryClasszButton").click(queryClassz);
    fillPageDataListTable();
    initOrganizationInfo();
})

function queryClassz() {
    $("#queryClasszTable input[type='hidden'][name='gotoPageHidden']").val("1")
    fillPageDataListTable();
}

function fillPageDataListTable() {
    var classzName = $("#queryClasszTable :text[name='classzName']").val();
    var organizationId = $("#queryClasszTable select[name='organizationSelect']").val();
    var gotoPage = $("#queryClasszTable input[type='hidden'][name='gotoPageHidden']").val();
    $.post("/classzmanager/queryClasszPage?t=" + new Date().getTime(), {
        "classzName": classzName,
        "organizationId": organizationId,
        "gotoPage": gotoPage
    }, function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            {
                var pageDataListTable = $("#pageDataListTable");
                $(pageDataListTable).find("tbody").empty();
                var queryPageDataList = jsonObject.responseData.queryPageDataList;
                if (queryPageDataList.length == 0 && gotoPage > 1) {//实现当前页删光显示前一页
                    $("#queryClasszTable input[type='hidden'][name='gotoPageHidden']").val(gotoPage - 1);
                    fillPageDataListTable();
                }
                if (queryPageDataList.length == 0) {
                    $(pageDataListTable).append(createTableEmpty());
                } else {
                    for (var i = 0; i < queryPageDataList.length; i++) {
                        var newTR = createEachClasszTR(queryPageDataList[i]);
                        $(pageDataListTable).find("tbody").append(newTR);
                    }
                }
            }

            {
                var queryGotoMap = jsonObject.responseData.queryGotoMap;
                var getAllPageRecordCount = queryGotoMap.getAllPageRecordCount;
                var getCurrentPageRecordCount = queryGotoMap.getCurrentPageRecordCount;
                var pageSize = queryGotoMap.pageSize;
                layui.use(['laypage'], function () {
                    var laypage = layui.laypage;
                    //分页导航自定义样式
                    laypage.render({
                        elem: 'pageComponent',
                        count: getAllPageRecordCount,
                        limit: pageSize,
                        groups: 20,
                        theme: '#1E9FFF',
                        curr: gotoPage,
                        jump: function (obj, first) {
                            if (!first) {
                                var clickGotoPage = obj.curr;//获取当前点击页码
                                $("#queryClasszTable input[type='hidden'][name='gotoPageHidden']").val(clickGotoPage);
                                fillPageDataListTable();
                            }
                        }
                    });
                });

                $("#gotoPageTable button[name='getAllPageRecordCount']").text("所有页的总记录数：" + getAllPageRecordCount);
                $("#gotoPageTable button[name='getCurrentPageRecordCount']").text("当前页的记录数：" + getCurrentPageRecordCount);
            }
        }
    });
}

function showEditClasszDialog() {
    var classzId = $(this).attr("classzId");

    $.post("/classzmanager/queryClasszById?t=" + new Date().getTime(), {
        "classzId": classzId,
    }, function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            var getClassz = jsonObject.responseData;

            $("#editClasszTable input[type='hidden'][name='classzId']").val(getClassz.id);
            $("#editClasszTable :text[name='classzName']").val(getClassz.classzName);

            layer.open({
                type: 1,
                title: '编辑班级',
                area: ['800px'],
                content: $("#editClasszDivOut"),
                success: function (layero, index) {
                    //alert(layero + "  " + index);
                }
            });
        }
    });
}

function deleteClassz() {
    var classzId = $(this).attr("classzId");
    layer.open({
        type: 0,
        content: "确认删除班级？",
        btn: ['删除', '关闭'],
        yes: function (index, layero) {
            $.post("/classzmanager/deleteClasszById?t=" + new Date().getTime(), {
                "classzId": classzId,
            }, function (data) {
                var jsonObject = JSON.parse(data);
                if (jsonObject.responseCode == 500) {
                    layer.msg(jsonObject.message);
                }
                if (jsonObject.responseCode == 501) {
                    layer.msg("系统级异常：" + jsonObject.message);
                }
                if (jsonObject.responseCode == 200) {
                    fillPageDataListTable();
                }
                layer.closeAll('dialog');
            });
        }
    });
}

function createEachClasszTR(eachClassz) {
    var newTR = $("<tr></tr>");

    var id_td = $("<td></td>");
    $(id_td).css("width", "150px");
    $(id_td).text(eachClassz.id);

    var classzName_td = $("<td></td>");
    $(classzName_td).text(eachClassz.classzName);

    var organizationName_td = $("<td></td>");
    $(organizationName_td).text(eachClassz.organizationName);

    var operate_td = $("<td></td>");
    $(operate_td).css("width", "150px");
    var editClasszA = $(`<button class="layui-btn layui-btn-sm layui-btn-normal"> <i class="layui-icon">&#xe642;</i></button>`);
    $(editClasszA).attr("classzId", eachClassz.id);
    $(editClasszA).click(showEditClasszDialog);
    var deleteClasszA = $(`<button class="layui-btn layui-btn-sm layui-btn-danger"><i class="layui-icon">&#xe640;</i></button>`);
    $(deleteClasszA).attr("classzId", eachClassz.id);
    $(deleteClasszA).click(deleteClassz);
    $(operate_td).append(editClasszA);
    $(operate_td).append(deleteClasszA);

    $(newTR).append(id_td);
    $(newTR).append(classzName_td);
    $(newTR).append(organizationName_td);
    $(newTR).append(operate_td);

    return newTR;
}

function insertClassz() {
    var classzName = $("#insertClasszTable :text[name='classzName']").val();
    var organizationId = $("#insertClasszTable input[type='hidden'][name='organizationId']").val();

    $.post("/classzmanager/insertClassz?t=" + new Date().getTime(), {
        "classzName": classzName,
        "organizationId": organizationId
    }, function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            $("#insertClasszTable :text[name='classzName']").val("");
            fillPageDataListTable();
            layer.closeAll('page');
        }
    });
}

function updateClassz() {
    var classzId = $("#editClasszTable input[type='hidden'][name='classzId']").val();
    var classzName = $("#editClasszTable :text[name='classzName']").val();
    var organizationId = $("#insertClasszTable input[type='hidden'][name='organizationId']").val();
    $.post("/classzmanager/updateClassz?t=" + new Date().getTime(), {
        "classzId": classzId,
        "classzName": classzName,
        "organizationId": organizationId
    }, function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            fillPageDataListTable();
            layer.closeAll('page');
        }
    });
}

function showInsertClasszDialog() {
    layer.open({
        type: 1,
        title: '添加班级',
        area: ['800px'],
        content: $("#insertClasszDivOut"),
        success: function (layero, index) {
            $("#insertClasszTable :text[name='classzName']").val("");
            initOrganizationInfo();
        }
    });
}

function initOrganizationInfo() {
    $.post("/commons/getCookieLoginOrganizationInfo?t=" + new Date().getTime(), function (data) {
        var jsonObject = JSON.parse(data);
        if (jsonObject.responseCode == 500) {
            layer.msg(jsonObject.message);
        }
        if (jsonObject.responseCode == 501) {
            layer.msg("系统级异常：" + jsonObject.message);
        }
        if (jsonObject.responseCode == 200) {
            var cookieOrganizationInfo = jsonObject.responseData;

            var organizationId = cookieOrganizationInfo.organizationId;
            var organizationName = cookieOrganizationInfo.organizationName;

            $(":text[name='organizationName']").val(organizationName);
            $("input[type='hidden'][name='organizationId']").val(organizationId);
        }
    });
}

function createTableEmpty() {
    var newTR = $("<tr></tr>");
    var newTD = $("<td></td>");
    $(newTD).text("列表为空！");
    $(newTD).attr("colspan", 4);
    $(newTD).css("text-align", "center");
    $(newTR).append(newTD);
    return newTR;
}
